您现在的位置是:首页 > Excel技巧>使用EXCEL VBA SQL语句实现一键查询
vba 执行sql查询语句-使用EXCEL VBA SQL语句实现一键查询
发布于2022-04-150人已围观
Excel经常用的功能大部分在软件界面体现了,还有一些不常用的在菜单里面也能找到。VBA宏代码相对Excel公式来说,用的频率要少些,但是VBA有他特殊的用途。
下面说一下VBA和SQL语句结合使用怎么实现表格数据一键查询,【注:SQL全称是结构化查询语言,是一种数据库查询和程序设计语言,对这方面感兴趣的朋友可以自己了解一下。】
举个例子:用EXCEL VBA SQL语句查询总成绩大于290分的学生
一、正常的操作步骤是:
1、用Excel打开表格,点击插入——数据透视图
2、在数据透视图界面,选择行标签字段和求和项字段
3、把行标签和求和项表格数据进行排序,选出成绩大于290的记录
用数据透视图功能操作很简便,除此之外用分类汇总功能也可以实现,只不过前者更方便些。
二、EXCEL VBA SQL语句实现表格数据的一键查询
1、用excel打开表格,按alt+F11打开VBA工程界面,在个人工作簿里新建模块,在模块的代码区域输入下面的代码
2、根据实际需要在SQL变量区域输入自己想要的查询代码,保存,F5运行,注意[表名$]这种写法
以上是用Excel VBA SQL语句实现了表格查询的一键自动化操作(按ALT+F8),在规则不经常变动的情况下使用很实用,以下是代码供复制粘贴。
Sub SQL查询()
Dim cnn As Object, rs As Object, SQL As String
Set cnn = CreateObject("adodb.connection") '创建数据库连接
cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ActiveWorkbook.FullName
Set rs = CreateObject("adodb.recordset") '创建一个数据集
SQL = "select 姓名,sum(成绩) from [原始数据$] group by 姓名 HAVING sum(成绩)>290" '设置SQL查询语句
Set rs = cnn.Execute(SQL) '执行查询
ActiveWorkbook.Worksheets(2).Cells.ClearContents
Dim i As Integer
For i = 1 To rs.Fields.Count
ActiveWorkbook.Worksheets(2).Cells(1, i) = rs.Fields(i - 1).Name '填写标题到表2
Next
ActiveWorkbook.Worksheets(2).Range("a2").CopyFromRecordset rs '复制记录集到表2
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
- 上篇文章:在VBA中使用SQL必须要知道的几点
- 下篇文章:清单前面的单元格打勾
相关文章
文章评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~